[Regex] (Tteil)ergebnisse in Array speichern

Hallo zusammen,

ich habe mir ein RegEx gebastelt, daß mir den gewünschten Text
rausfiltert.
Ich möchte nun alle Fundstellen des Textes in ein Array speichern, um
damit dann arbeiten zu können. Leider blicke ich bei den
vordefinierten Variabeln von Perl nicht so richtg durch.

RegEx: $string =~ /(^\s*\+?-{3,}\+?)(\s*!+\s*.*\s*!)/gm;

In $string ist der gesamte Beispielext als String gespeichert.

Beisieltext - Anfang:
+----------------------------------------------------------- --------------------------------------------------
! NR_BUCHUNG ! COD_MANDANT ! NR_KONTO ! COD_KONTOTYP ! NR_BELEG !
COD_BELEGART ! DAT_BUCHUNG !
+----------------------------------------------------------- --------------------------------------------------
1_! 1703383 ! U ! 138 ! 1 ! 2894639 ! 1038 ! 01.10.2003 !
2_! 1703382 ! U ! 138 ! 1 ! 2894639 ! 1038 ! 01.10.2003 !
3_! 1703222 ! U ! 138 ! 1 ! 48527 ! 1038 ! 04.11.2003 !

+----------------------------------------------------------- --------------------------------------------------
1PAGE 2
------------------------------------------------------------ ------------------------------------------------------------ -----
! COD_WAEHRUNG ! NR_ABSTIMM ! NR_JOURNAL ! COD_BUCH_TYP ! COD_VORGANG
! COD_VORG_DETAIL ! COD_BUCH_DETAIL ! COD_ZAHLWEG !
------------------------------------------------------------ ------------------------------------------------------------ -----
1_! 978 ! 1038 ! 0 ! 1 ! 60 ! 90 ! 0 ! 30 !
2_! 978 ! 1038 ! 0 ! 1 ! 60 ! 90 ! 0 ! 30 !
3_! 978 ! 1038 ! 0 ! 1 ! 60 ! 90 ! 0 ! 30 !

1PAGE 3
------------------------------------------------------------ ------------------------------------------------------------ -----
! COD_ZAHL_DETAIL ! ID_BUOBJ ! DAT_FAELLIG ! NR_PERIODE !
ID_GESCHAEFTSJAHR ! DAT_GUELTIG_AB ! DAT_GUELTIG_BIS !
------------------------------------------------------------ ------------------------------------------------------------ -----
1_! 0 ! ! 01.10.2003 ! 10 ! 2003 ! 01.01.0001 ! 01.01.0001 !
2_! 0 ! ! 01.10.2003 ! 10 ! 2003 ! 01.01.0001 ! 01.01.0001 !
3_! 0 ! ! 04.11.2003 ! 11 ! 2003 ! 01.01.0001 ! 01.01.0001 !

Beispieltext - Ende


Wie bekomme ich nun alle Funndstellen (Der Text ist länger als hier
angegeben) in ein Array ?

Danke für Hinweise.

Ich arbeite mit perl 5.8..820 auf Windoof
MfG Stefan Kubina
--
"Entwededer man lebt, oder man ist konsequent." Erich Kästner
Homepage: http://www.JustMe69.de - http://www.SKubIO-Media.de
ICQ:#45202585
Stefan Kubina [ Fr, 13 Juli 2007 20:22 ] [ ID #1768106 ]

Re: [Regex] (Tteil)ergebnisse in Array speichern

Stefan Kubina wrote:

> ich habe mir ein RegEx gebastelt, daß mir den gewünschten Text
> rausfiltert.

Welchen?

> Ich möchte nun alle Fundstellen des Textes in ein Array speichern, um
> damit dann arbeiten zu können.

Die Fundstellen bekommst Du geliefert, indem Du die Teilausdrücke
im Pattern klammerst und den Returnwert an ein Array zuweist.

Grüße
Frank
--
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel
Frank Seitz [ Fr, 13 Juli 2007 21:21 ] [ ID #1768109 ]

Re: [Regex] (Tteil)ergebnisse in Array speichern

>Stefan Kubina wrote:
>
>> ich habe mir ein RegEx gebastelt, daß mir den gewünschten Text
>> rausfiltert.
>Welchen?
Ähm... Suchtext und RegEx steht im 1 Post

>Die Fundstellen bekommst Du geliefert, indem Du die Teilausdrücke
>im Pattern klammerst und den Returnwert an ein Array zuweist.
Yep - was mir fehlte war noch ne while-Schleife - ich wollte nicht nur
den Inhalt _einer_ Gruppe, sondern alle Vokommen einer (oder
mehrerer) Gruppen bekommen.

while ($string =~ $regex)
{
push( [at] array, "$1");
}

--> d.h. dieses Problem hat sich erledigt ;-)
--
Don't fear, it's just me...
Homepage: http://www.JustMe69.de - http://www.SKubIO-Media.de
ICQ:#45202585
Stefan Kubina [ Sa, 14 Juli 2007 10:18 ] [ ID #1768965 ]

Re: [Regex] (Tteil)ergebnisse in Array speichern

Stefan Kubina wrote:

> Wie bekomme ich nun alle Funndstellen (Der Text ist länger als hier
> angegeben) in ein Array ?

Zu dem, was Frank dir schon geschrieben hat: Eventuell wäre die Funktion
split() etwas für dich.

Gruss

Roman°
--
IRC-Freenode: #usenet-friends
http://www.usenet-friends.ch.vu/
Roman Racine [ So, 15 Juli 2007 00:37 ] [ ID #1768970 ]

Re: [Regex] (Tteil)ergebnisse in Array speichern

Am Sun, 15 Jul 2007 00:37:55 +0200, schrieb Roman Racine
>Zu dem, was Frank dir schon geschrieben hat: Eventuell wäre die Funktion
>split() etwas für dich.

In dem Fall eher nicht, da reichen ein paar () im RegEx und eine
while-Schleife, die mir das Array füllt.

Danke fürs Mitdenken ;-)

MfG Stefan Kubina
--
Don't fear, it's just me...
Homepage: http://www.JustMe69.de - http://www.SKubIO-Media.de
ICQ:#45202585
Stefan Kubina [ So, 15 Juli 2007 11:04 ] [ ID #1769389 ]
Perl » de.comp.lang.perl.misc » [Regex] (Tteil)ergebnisse in Array speichern

Vorheriges Thema: Grafikdarstellung für Kartenspiel
Nächstes Thema: Formatbeschreibung dBase-Dateien?